package org.xbs.demo1.controller;

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.xbs.demo1.pojo.JwtUtils;
import org.xbs.demo1.pojo.LoginBackParam;
import org.xbs.demo1.pojo.LoginParam;
import org.xbs.demo1.result.Result;
import org.xbs.demo1.service.impl.LoginService;

@Slf4j
@RestController
@RequestMapping("/login")
//括号内输入对应的前端地址
//登录的时候使用了令牌技术，0.12.2版本的
public class LoginController {
    //对于登录一般使用的是post方式，参数在请求体中，而且得返回一些参数给前端用于构建页面
    @Autowired
    private LoginService loginService;
    @PostMapping
    public Result login(@RequestBody LoginParam loginParam){
        log.info("用户登录中:{}",loginParam);
        //调用loginService中的login()方法
        LoginBackParam loginBackParam = loginService.login(loginParam);
        if(loginBackParam==null){
            log.info("用户登录失败");
            return Result.fail();
        }
        loginBackParam.setLoggedIn(true);
        log.info("用户登录成功,用户信息为:{}",loginBackParam);
        return Result.success(loginBackParam);
    }
    //基于spring中的拦截器实现登录校验与后台日志的获得
}
